首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏编程

    Java并发编程实战

    java编程人员不需要自己动手加锁,对象锁是java虚拟机内部使用的。在java程序中,只需要使用synchronized块或者synchronized方法就可以标志一个监视区域。 当每次进入一个监视区域时,java 虚拟机都会自动锁上对象或者类。(摘自java的锁机制)。 锁的是什么? 1.5参考资料 1、《Java 7 并发编程实战手册》 2、java synchronized详解(http://www.cnblogs.com/GnagWang/archive/2011/02/27/ 1966606.html) 3、聊聊并发(二)Java SE1.6中的Synchronized(http://ifeve.com/java-synchronized/) 4、java的锁机制(http: //blog.csdn.net/yangzhijun_cau/article/details/6432216) 5、Java的无锁编程和锁优化(http://blog.csdn.net/raychase

    92950发布于 2018-02-26
  • 来自专栏Java高级

    Java网络编程实战案例

    *;import java.net.*;import java.util.*;import java.util.concurrent. *;import java.net. *;import java.net.*;import java.nio.file. *;import java.net.*;import java.nio.file. 界面:结合 Spring Boot 提供 Web 上传分布式存储:集成 MinIO/S3 学习路线基础Socket → 多线程处理 → 协议设计 → NIO → Netty框架 → 分布式系统掌握这些实战案例

    23010编辑于 2025-08-12
  • 来自专栏CBeann的博客

    java并发编程实战》总结

    import java.util.ArrayList; import java.util.List; /** * @author CBeann * @create 2020-02-20 2:49 不可变对象能极大地降低并发编程的复杂性。它们更为简单而且安全,可以任意共享而无须使用加锁或保护性复制等机制。 封装有助于管理复杂性。 import java.util.Random; import java.util.concurrent.*; /** * @author CBeann * @create 2020-02-20 并发编程实战--通过线程转储信息来分析死锁_衣舞晨风-CSDN博客 10.3其他活跃性危险 10.3.1饥饿 要避免使用线程优先级,因为这会增加平台依赖性,并可能导致活跃性问题。 第16章 Java内存模型(JMM) 此内容参考《深入理解java虚拟机》 Java内存模型(Java Memory Model ,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的

    31710编辑于 2023-12-25
  • 来自专栏Java项目实战

    Java并发编程实战(八)

    5、什么是线程组,为什么在 Java 中不推荐使用? 线程组(Thread Group)是Java中用于管理线程的机制,可以将一组线程组织在一起,方便管理和控制。 但是在Java中不推荐使用线程组,因为Java中的线程都是轻量级的,可以通过Thread类的构造函数来创建,不需要通过线程组来进行管理。 6、为什么使用Executor框架? 7、在 Java 中 Executor 和 Executors 的区别? 并发编程中的两个重要概念。 并发编程中的一种解决方案,它提供了一些线程池和任务队列等工具来支持并发编程

    36530编辑于 2023-04-25
  • 来自专栏全栈程序员必看

    java函数式编程Function(java函数式编程实战)

    JAVA函数式编程 背景 常见的编程范式 函数式编程的优劣 JAVA8中为函数式编程引入的变化 JAVA函数式编程可以简单概括 基本函数 Lambda表达式 方法引用 Stream流API 创建操作 中间操作 在编程历史的长河中java向来可维护性、可扩展性是一直受业界所推崇的。但由于java语法臃肿,也流失了一部分转向了python、go等。 那么java也推出了函数式编程也通过本文来了解一下。 常见的编程范式 命令式编程:命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。 代表语言有:C, C++, Java, Javascript, BASIC,Ruby等多为老牌语言 声明式编程:声明式编程是以数据结构的形式来表达程序执行的逻辑。 被default修饰的方法–默认实现 JAVA函数式编程可以简单概括 lambda + 方法引用 + stream API = java函数式编程 基本函数 以上是在函数式编程中的基本函数模型,我们大可以将其与数学函数做关联

    2.4K50编辑于 2022-08-02
  • 来自专栏JavaEdge

    Java 网络编程实战(一) - 简介

    网络编程进化史 为什么学习呢! 特色 URL解析与构造 DNS解析 从右向左解析域名 域名的层级 域名DNS查询的两种方式:递归与迭代 递归查询 迭代查询 协议 网络协议分门别类 应用层数据包格式 参考 一站式学习Java

    14920发布于 2021-02-22
  • 来自专栏猿小俊

    Java并发编程实战总结 (一)

    Room { private Integer id; // 房间名 private String name; // get set... } 房间排期类 import java.sql.Timestamp https://pan.baidu.com/s/1c9l3Ri0KzkdIkef8qtKZeA 提取码:kjh6 初次实战(sychronized) 第一次进行并发实战,我是首先想到sychronized RoomAllocator房间资源分配器代码如下: import java.util.ArrayList; import java.util.List; /** * 房间资源分配器(单例类) */ 毕竟没有实战经验,只有理论,不足以学好并发。希望大家也可以在项目中搞事情[坏笑],当然不能瞎搞。 后续如果在其他场景用到了并发,也会继续写并发实战的文章哦~ 个人博客网址: https://colablog.cn/

    56630发布于 2020-06-07
  • 来自专栏全栈程序员必看

    shell编程菜鸟教程_java并发编程实战 pdf

    大家好,又见面了,我是你们的朋友全栈君 Shell编程详解 Shell简介 概述 Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口。 Shell编程 基本格式 Shell脚本的文件名后缀通常是.sh (当然你也可以使用其他后缀或者没有后缀,.sh是为了规范) 程序编写格式: #! 显示变量值使用echo命令(类似于java中的system.out) ,加上变量名,也可以使用{变量名} 例如: echo $JAVA_HOME echo ${JAVA_HOME} 变量的申明和使用 255之间 $#:参数个数 *:或者@:所有的参数 $$:获取当前shell的进程号(PID)(可以实现脚本自杀)(或者使用exit命令直接退出也可以使用exit [num]) 引号 Shell编程中有三类引号 问题:某个java进程已经启动,用jps却显示不了该进程进程号,使用ps -ef|grep java却可以看到?

    4.9K20编辑于 2022-09-23
  • 来自专栏全栈程序员必看

    java并发编程实战_java解决并发问题

    Executors 在Java 5之后,并发编程引入了一堆新的启动、调度和管理线程的API。 Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在java.util.cocurrent 包下,通过该框架来控制线程的启动、执行和关闭,可以简化并发编程的操作。 Java 开发者很有必要学习和理解他们,以便更高效的使用 Java 提供的不同类型的线程池。 下面给出一个Executor执行Callable任务的示例代码: import java.util.ArrayList; import java.util.List; import java.util.concurrent ; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ThreadPoolExecutor;

    89620编辑于 2022-10-01
  • 来自专栏JavaEdge

    Java高性能编程实战 - 线程终止

    Stop:中止线程,并且清除监控器锁的信息,但是可能导致线程安全问题,JDK不建议用。 Destroy: JDK未实现该方法

    68810发布于 2021-02-23
  • 来自专栏JavaEdge

    Java高性能编程实战 - 线程通信

    2 网络共享 socket编程问题,非本文重点,不再赘述 3 共享变量 ?

    68320发布于 2021-02-22
  • Java IO 与 NIO 编程实战详解

    本篇文章将通过大量示例与图解,从基础流操作讲起,逐步深入到 NIO 实战,助你全面掌握 Java 的输入输出机制。 五、NIO:非阻塞式 I/O 编程5.1 NIO 三大核心组件组件名说明Buffer数据的容器(ByteBuffer 等)Channel双向通道,替代流接口Selector多路复用器,管理多个 Channel 工作流程css复制编辑[Channel] ⇄ [Buffer] ⇄ [Selector] ↑ ↓[文件/网络] 事件轮询触发六、NIO 编程实战 复制编辑Thread.startVirtualThread(() -> { // 调用异步通道});十、项目实战建议与性能调优10.1 文件读取优化 大文件读取:使用 FileChannel + 的输入输出编程从传统的 Stream 模型到 NIO,再到异步通道和虚拟线程,经历了多个阶段的演进。

    22410编辑于 2025-06-06
  • 来自专栏猿小俊

    Java并发编程实战 01并发编程的Bug源头

    本文为学习极客时间:Java并发编程实战 01的总结,文章取图也是来自于该文章 并发Bug源头 在计算机系统中,程序的执行速度为:CPU > 内存 > I/O设备 ,为了平衡这三者的速度差异,计算机体系机构 源头之二:线程切换带来的原子性问题 现代的操作系统都是基于线程来调度的,现在提到的“任务切换”都是指“线程切换” Java并发程序都是基于多线程的,自然也会涉及到任务切换,在高级语言中,一条语句可能就需要多条 参考文章:极客时间:Java并发编程实战 01 | 可见性、原子性和有序性问题:并发编程Bug的源头 个人博客网址: https://colablog.cn/ 如果我的文章帮助到您,可以关注我的微信公众号

    55510发布于 2020-04-15
  • 来自专栏架构师成长之路

    java并发编程实战(2) 线程同步synchronized

    synchronized和volatile都具有有序性,Java允许编译器和处理器对指令进行重排,但是指令重排并不会影响单线程的顺序,它影响的是多线程并发执行的顺序性。 Synchronized是Java并发编程中最常用的用于保证线程安全的方式,其使用相对也比较简单。 但是如果能够深入了解其原理,对监视器锁等底层知识有所了解,一方面可以帮助我们正确的使用Synchronized关键字,另一方面也能够帮助我们更好的理解并发编程机制,有助我们在不同的情况下选择更优的并发策略来完成任务 3)数组长度:如果对象是一个Java数组,那在对象头中还必须有一块用于记录数组长度的数据,因为虚拟机可以通过普通Java对象的元数据信息确定Java对象的大小,但是从数组的元数据中无法确定数组的大小。 比如下面这个demo: import java.util.ArrayList; import java.util.List; public class SyncDemo1 { public static

    59520编辑于 2022-04-14
  • 来自专栏架构师成长之路

    java并发编程实战(6) 乐观锁 CAS

    我们在系列java并发线程实战(1)线程安全和机制原理,已经提到例子, private volatile int count = 0; public void doAdd(CountDownLatch 这是因为程序是线程不安全的,所以造成的结果count值可能小于4000;具体分析已经在java并发线程实战(1)线程安全和机制原理 提到过。 在Java发展初期,java语言是不能够利用硬件提供的这些便利来提升系统的性能的。 而随着java不断的发展,Java本地方法(JNI)的出现,使得java程序越过JVM直接调用本地方法提供了一种便捷的方式,因而java在并发的手段上也多了起来。 在 Java 中,Java 并没有直接实现 CAS,CAS 相关的实现是通过 C++ 内联汇编的形式实现的。Java 代码需通过 JNI 才能调用。

    1.2K30编辑于 2022-04-14
  • Java异步编程:提升性能的实战秘籍

    一、Java异步编程基础 1.1 同步与异步的区别 同步编程是指程序按照顺序依次执行任务,当前任务未完成时,后续任务会处于等待状态。 特性 同步编程 异步编程 执行方式 顺序执行 非顺序执行 线程阻塞 是 否 资源利用率 低 高 编程复杂度 低 高 1.2 异步编程的核心接口 Java提供了 Future 、 Callable 、 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future 二、Java异步编程的常见难题及解决方案 2.1 回调地狱(Callback Hell) 在传统的异步编程中,大量嵌套的回调函数会导致代码可读性和可维护性极差,形成“回调地狱”。 四、总结 本文通过深入分析Java异步编程的基础概念、常见难题及解决方案,结合丰富的代码示例和图表,展示了如何高效地进行异步编程

    27710编辑于 2025-06-13
  • 来自专栏架构师成长之路

    java并发编程实战(3) Lock显示锁

    一 、synchronized问题   synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢?    1)Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性。 但是要注意以下几点:     1)synchronized是Java语言的关键字,因此是内置特性,Lock不是Java语言内置的,Lock是一个接口,通过实现类可以实现同步访问。      【例子】三个线程同时对一个共享数据进行读写 import java.util.Random; import java.util.concurrent.locks.ReadWriteLock; import 在Java中,synchronized就不是可中断锁,而Lock是可中断锁。   

    44120编辑于 2022-04-14
  • 来自专栏一个会写诗的程序员的博客

    Java 并发编程实战】信号量 (Semaphore)

    代码实战 package com.light.sword import java.util.concurrent.Semaphore /** * @author: Jack * 2020 When used in this way, the binary semaphore has the property (unlike many java.util.concurrent.locks.Lock fr=aladdin ---- Kotlin 开发者社区 国内第一Kotlin 开发者社区公众号,主要分享、交流 Kotlin 编程语言、Spring Boot、Android、React.js/Node.js 、函数式编程编程思想等相关主题。

    1.1K20发布于 2020-02-18
  • Java 多线程与并发编程实战指南

    一、引言随着多核 CPU 的普及,多线程编程已成为现代软件开发的重要技能之一。 本篇文章将通过图文结合与代码演示,从入门到高阶,系统梳理 Java 多线程与并发编程的核心知识。二、Java 多线程基础2.1 什么是线程线程是操作系统能够调度的最小执行单元。 七、原子类与无锁编程7.1 AtomicInteger 示例java复制编辑AtomicInteger counter = new AtomicInteger();counter.incrementAndGet 线程 ↔ M OS 线程(通过调度器映射)十、实战项目案例:并发爬图工具(不涉及爬虫逻辑)需求: 读取 URL 列表 多线程下载图片 控制最大并发为 10 个线程 java复制编辑ExecutorService 本文从基础到进阶,涵盖了: 多线程创建与控制 同步机制与线程安全 并发工具类 线程池实战与虚拟线程 性能调优与常见问题 通过示例与图示辅助讲解,相信你对 Java 并发编程有了清晰的认识。

    29710编辑于 2025-06-06
  • 来自专栏Java知识点

    Netty实战专栏 | Java网络编程深入解析

    1.前言 大家好,我是Leo哥,本次专栏学习Java并发以及netty应用的深度学习,netty提供了异步、事件驱动、非阻塞的网络编程模型,能够轻松处理高并发、高吞吐量的网络通信场景。 那就是IO,Java网络编程,BIO,NIO,AIO相关知识点,前置知识是还是挺多,只有打好前面的基础我们才能更深入理解netty这个框架以及他的底层原理。 本篇主要讲解和回顾Java网络编程的相关知识点。好了,话不多说让我们开始吧。 网络编程:Socket是进行网络编程的基础接口。通过使用Socket,开发者可以在应用程序中实现与网络相关的功能,如创建服务器、客户端,进行数据交换、文件传输等。 但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致; 如果缓冲区满了, 再到达的UDP数据就会被丢弃 UDP的socket既能读也能写,全双工通信 3.Java中的网络编程 3.1InetAddress

    89610编辑于 2023-11-16
领券